# 第一阶段：构建应用
FROM maven:3.8.6-openjdk-8 AS builder

# 设置构建参数（可根据需要调整）
ARG BUILD_ARGS="-DskipTests"

# 复制项目文件到容器中
WORKDIR /build
COPY . .

RUN cd ./ruoyi-admin

# 构建应用
RUN mvn clean package $BUILD_ARGS

# 第二阶段：运行时镜像
FROM openjdk:8-jdk-alpine

# 设置时区（解决容器内时间问题）
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 安装字体和字体配置工具
RUN apk add --no-cache fontconfig ttf-dejavu \
    && fc-cache -fv \
    && rm -rf /var/cache/apk/*

# 设置Headless模式和其他Java参数
ENV JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8"
ENV JAVA_MEM_OPTS="-Xms256m -Xmx512m -XX:+UseG1GC"

# 设置工作目录
WORKDIR /app

# 从构建阶段复制JAR文件
COPY --from=builder /build/ruoyi-admin/target/ruoyi-admin.jar app.jar

# 创建日志目录（确保可写）
RUN mkdir -p /app/logs \
    && chmod -R 755 /app/logs

# 暴露端口（若依默认端口为8080）
EXPOSE 8080

# 健康检查
HEALTHCHECK --interval=30s --timeout=3s \
  CMD curl -f http://localhost:8080/ || exit 1

# 启动命令（使用exec形式）
ENTRYPOINT ["sh", "-c", "java $JAVA_MEM_OPTS $JAVA_OPTS -jar /app/app.jar"]